package org.jsola.hr.query;

import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.contract.query.ContractExportQuery;

import java.util.Date;
import java.util.List;

import static org.jsola.contract.example.ContractExample.*;
import static org.jsola.contract.example.ContractExample.E_END_DATE_END;

/**
 * 合同导出列表
 *
 * @author wcl
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class HrContractExportQuery extends ContractExportQuery {

    @ApiParam(value = "状态，1待员工签署，2待公司签署，3签署完成，-1签署失败")
    private Integer empStatus;

    @ApiParam(value = "导出列")
    private List<EmpInfoExportColumn> exportColumns;

    /**
     * 英文名，用于模版路径 英文名 + Template.xlsx
     */
    private String enName;

    @ApiParam(value = "合同编号或名称或签署编号或员工手机号")
    private String contractNameOrNoOrSignNo;

    @ApiParam(value = "身份证号")
    private String idCard;

    @ApiParam("是否筛选即将到期的合同")
    private Boolean willExpire;

    @ApiParam("是否筛选已经到期的合同")
    private Boolean alreadyExpire;

    /**
     * 合同开始日期查询范围
     */
    @ApiParam(value = N_PUBLISH_DATE_START, example = E_PUBLISH_DATE_START)
    private Date publishDateStart;
    @ApiParam(value = N_PUBLISH_DATE_END, example = E_PUBLISH_DATE_END)
    private Date publishDateEnd;

    /**
     * 合同签署完成时间查询范围
     */
    @ApiParam(value = N_SIGN_FINISH_DATE_START, example = E_SIGN_FINISH_DATE_START)
    private Date signFinishDateStart;
    @ApiParam(value = N_SIGN_FINISH_DATE_END, example = E_SIGN_FINISH_DATE_END)
    private Date signFinishDateEnd;

    /**
     * 合同终止日期查询范围
     */
    @ApiParam(value = N_END_DATE_START, example = E_END_DATE_START)
    private Date endDateStart;
    @ApiParam(value = N_END_DATE_END, example = E_END_DATE_END)
    private Date endDateEnd;


}

